// 存放注册登录逻辑的路由
const express = require('express')
// md5 是第三方的包. 用来对存储到数据库中的密码进行加密
const md5 = require('md5')
// 引入model对象. model可以对数据库进行增删改查
const model = require('../db/model')
// 创建路由器中间件
const router = express.Router()
// 注册流程的的路由
router.post('/registe', async (req, res) => {
  // 获取用户上传的数据
  const { username, password } = req.body
  // 对密码进行加密
  try {
    // 往数据库中添加数据
    await model.create({ username, password: md5(password) })
    // 注册成功则重定向到登录页面
    res.redirect('http://localhost:5000/login')
  } catch (error) {
    res.send('注册失败,请稍后重试')
  }
})

// 登录流程的路由
router.post('/login', async (req, res) => {
  const { username, password } = req.body
  try {
    const user = await model.findOne({ username, password: md5(password) })
    if (user) {
      // 验证成功,表示用户登录成功, 重定向到管理界面
      // res.redirect('http://localhost:5000/view/manger.html')
      // 动态渲染模板,然后将模板渲染后的结果,响应给浏览器
      // 登录成功之后,服务器将一段数据,传递给浏览器,让浏览器存储到cookie中
      res.cookie('id', user._id)
      res.render('manger', user)
    } else {
      // 验证失败,用户登录失败
      res.send('登录失败了,请确认后重新登录')
    }
  } catch (error) {
    res.send('网络错误,请稍后再试')
  }
})

// 导出路由器中间件
module.exports = router
